﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;

namespace ProntuarioEletronico
{
    public partial class OpenPDF : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
           
        }

        public string Diretorio;

        protected void btBuscarArtigo_Click(object sender, EventArgs e)
        {
        //    if (ClinicaGeral.Checked == false || Cardiologia.Checked == false || Obstetria.Checked == false || Dermatologia.Checked == false || Endocrinologia.Checked == false || Neurologia.Checked  == false || Ortopedia.Checked == false || Pediatria.Checked == false || Outros.Checked == false )
        //    {
                
        //    }
        //else
        //    {
                
          
            gridview.AutoGenerateColumns = false;
            BoundField coluna1 = new BoundField();
            coluna1.DataField = "Name";
            coluna1.HeaderText = "Nome";
            gridview.Columns.Add(coluna1);

            BoundField coluna2 = new BoundField();
            coluna2.DataField = "Length";
            coluna2.HeaderText = "Tamanho";
            gridview.Columns.Add(coluna2);

            BoundField coluna3 = new BoundField();
            coluna3.DataField = "Extension";
            coluna3.HeaderText = "Extenção";
            gridview.Columns.Add(coluna3);


            if (ClinicaGeral.Checked)
            {

                Diretorio = Server.MapPath(@"~/uploads/ClinicaGeral");
                
                    DirectoryInfo d = new DirectoryInfo(Diretorio);
                    lstArquivos.Items.Clear();
                    foreach (FileInfo f in d.GetFiles())
                    {
                        lstArquivos.Items.Add(f.ToString());
                    }
              

                //DirectoryInfo arquivos = new DirectoryInfo(Server.MapPath(@"~/uploads/ClinicaGeral"));
                //gridview.DataSource = arquivos.GetFiles("*.pdf");
                //gridview.DataBind();
            }else if (Cardiologia.Checked)
            {

                Diretorio = Server.MapPath(@"~/uploads/Cardiologia");

                DirectoryInfo d = new DirectoryInfo(Diretorio);
                lstArquivos.Items.Clear();
                foreach (FileInfo f in d.GetFiles())
                {
                    lstArquivos.Items.Add(f.ToString());
                }
              


                //DirectoryInfo arquivos = new DirectoryInfo(Server.MapPath(@"~/uploads/Cardiologia"));
                //gridview.DataSource = arquivos.GetFiles("*.pdf");
                //gridview.DataBind();
            }else if (Obstetria.Checked)
            {

                Diretorio = Server.MapPath(@"~/uploads/Obstetria");

                DirectoryInfo d = new DirectoryInfo(Diretorio);
                lstArquivos.Items.Clear();
                foreach (FileInfo f in d.GetFiles())
                {
                    lstArquivos.Items.Add(f.ToString());
                }
              
                //DirectoryInfo arquivos = new DirectoryInfo(Server.MapPath(@"~/uploads/Obstetria"));
                //gridview.DataSource = arquivos.GetFiles("*.pdf");
                //gridview.DataBind();
            }else if (Dermatologia.Checked)
            {

                Diretorio = Server.MapPath(@"~/uploads/Dermatologia");

                DirectoryInfo d = new DirectoryInfo(Diretorio);
                lstArquivos.Items.Clear();
                foreach (FileInfo f in d.GetFiles())
                {
                    lstArquivos.Items.Add(f.ToString());
                }
                //DirectoryInfo arquivos = new DirectoryInfo(Server.MapPath(@"~/uploads/Dermatologia"));
                //gridview.DataSource = arquivos.GetFiles("*.pdf");
                //gridview.DataBind();
            }else if (Endocrinologia.Checked)
            {

                Diretorio = Server.MapPath(@"~/uploads/Endocrinologia");

                DirectoryInfo d = new DirectoryInfo(Diretorio);
                lstArquivos.Items.Clear();
                foreach (FileInfo f in d.GetFiles())
                {
                    lstArquivos.Items.Add(f.ToString());
                }
                //DirectoryInfo arquivos = new DirectoryInfo(Server.MapPath(@"~/uploads/Endocrinologia"));
                //gridview.DataSource = arquivos.GetFiles("*.pdf");
                //gridview.DataBind();
            }else if (Neurologia.Checked)
            {

                Diretorio = Server.MapPath(@"~/uploads/Neurologia");

                DirectoryInfo d = new DirectoryInfo(Diretorio);
                lstArquivos.Items.Clear();
                foreach (FileInfo f in d.GetFiles())
                {
                    lstArquivos.Items.Add(f.ToString());
                }
                //DirectoryInfo arquivos = new DirectoryInfo(Server.MapPath(@"~/uploads/Neurologia"));
                //gridview.DataSource = arquivos.GetFiles("*.pdf");
                //gridview.DataBind();
            }else if (Ortopedia.Checked)
            {

                Diretorio = Server.MapPath(@"~/uploads/Ortopedia");

                DirectoryInfo d = new DirectoryInfo(Diretorio);
                lstArquivos.Items.Clear();
                foreach (FileInfo f in d.GetFiles())
                {
                    lstArquivos.Items.Add(f.ToString());
                }
                //DirectoryInfo arquivos = new DirectoryInfo(Server.MapPath(@"~/uploads/Ortopedia"));
                //gridview.DataSource = arquivos.GetFiles("*.pdf");
                //gridview.DataBind();
            }else if (Pediatria.Checked)
            {

                Diretorio = Server.MapPath(@"~/uploads/Pediatria");

                DirectoryInfo d = new DirectoryInfo(Diretorio);
                lstArquivos.Items.Clear();
                foreach (FileInfo f in d.GetFiles())
                {
                    lstArquivos.Items.Add(f.ToString());
                }
                //DirectoryInfo arquivos = new DirectoryInfo(Server.MapPath(@"~/uploads/Pediatria"));
                //gridview.DataSource = arquivos.GetFiles("*.pdf");
                //gridview.DataBind();
            }else if (Outros.Checked)
            {

                Diretorio = Server.MapPath(@"~/uploads/Outros");

                DirectoryInfo d = new DirectoryInfo(Diretorio);
                lstArquivos.Items.Clear();
                foreach (FileInfo f in d.GetFiles())
                {
                    lstArquivos.Items.Add(f.ToString());
                }
                //DirectoryInfo arquivos = new DirectoryInfo(Server.MapPath(@"~/uploads/Outros"));
                //gridview.DataSource = arquivos.GetFiles("*.pdf");
                //gridview.DataBind();
            }
           
       
        }

        protected void btBaixar_Click(object sender, EventArgs e)
        {
            if (lstArquivos.SelectedIndex != -1)
            {

                Session.Add("Arquivo", lstArquivos.SelectedItem.Value);
                if (ClinicaGeral.Checked == true)
                {
                    Diretorio = Server.MapPath(@"~/uploads/ClinicaGeral");
                    Session.Add("Caminho", Diretorio);
                }
                else if (Cardiologia.Checked == true)
                {
                    Diretorio = Server.MapPath(@"~/uploads/Cardiologia");
                    Session.Add("Caminho", Diretorio);
                }
                else if (Obstetria.Checked == true)
                {
                    Diretorio = Server.MapPath(@"~/uploads/Obstetria");
                    Session.Add("Caminho", Diretorio);
                }
                else if (Dermatologia.Checked == true)
                {
                    Diretorio = Server.MapPath(@"~/uploads/Dermatologia");
                    Session.Add("Caminho", Diretorio);
                }
                else if (Endocrinologia.Checked == true)
                {
                    Diretorio = Server.MapPath(@"~/uploads/Endocrinologia");
                    Session.Add("Caminho", Diretorio);
                }
                else if (Neurologia.Checked == true)
                {
                    Diretorio = Server.MapPath(@"~/uploads/Neurologia");
                    Session.Add("Caminho", Diretorio);
                }
                else if (Ortopedia.Checked == true)
                {
                    Diretorio = Server.MapPath(@"~/uploads/Ortopedia");
                    Session.Add("Caminho", Diretorio);
                }
                else if (Pediatria.Checked == true)
                {
                    Diretorio = Server.MapPath(@"~/uploads/Pediatria");
                    Session.Add("Caminho", Diretorio);
                }
                else if (Outros.Checked == true)
                {
                    Diretorio = Server.MapPath(@"~/uploads/Outros");
                    Session.Add("Caminho", Diretorio);
                }
               // Session.Add("Caminho", Diretorio);


                if (Session["Arquivo"] != null && Session ["Caminho"] != null)
                {
                    Response.ContentType = "application/pdf";
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + Session["Arquivo"]);
                    Response.WriteFile(Session["Caminho"] + "\\" + Session["Arquivo"]);
                    Response.Flush();
                    Session.Remove("Arquivo");
                    Session.Remove("Caminho");
                }
                else
                {
                    Response.Redirect("OpenPDF.aspx");
                }
            }
        }

     

        protected void btVisualizar_Click(object sender, EventArgs e)
        {

            if (lstArquivos.SelectedIndex != -1)
            {
                Context.Response.Buffer = false;
                FileStream file = null;
                byte[] mybuff = new byte[1024];
                long count;

                Session.Add("Arquivo", lstArquivos.SelectedItem.Value);
                if (ClinicaGeral.Checked == true)
                {


                    Diretorio = Server.MapPath(@"~/uploads/ClinicaGeral/");
                    Session.Add("Caminho", Diretorio);

                    file = File.OpenRead(Diretorio + Session["Arquivo"]);

                  
                }
                else if (Cardiologia.Checked == true)
                {
                    file = File.OpenRead(@"~/uploads/Cardiologia");
                    //Diretorio = Server.MapPath(@"~/uploads/Cardiologia");
                    //Session.Add("Caminho", Diretorio);
                }
                else if (Obstetria.Checked == true)
                {
                    file = File.OpenRead(@"~/uploads/Obstetria");
                    //Diretorio = Server.MapPath(@"~/uploads/Obstetria");
                    //Session.Add("Caminho", Diretorio);
                }
                else if (Dermatologia.Checked == true)
                {
                    file = File.OpenRead(@"~/uploads/Dermatologia");
                    //Diretorio = Server.MapPath(@"~/uploads/Dermatologia");
                    //Session.Add("Caminho", Diretorio);
                }
                else if (Endocrinologia.Checked == true)
                {
                    file = File.OpenRead(@"~/uploads/Endocrinologia");
                    //Diretorio = Server.MapPath(@"~/uploads/Endocrinologia");
                    //Session.Add("Caminho", Diretorio);
                }
                else if (Neurologia.Checked == true)
                {
                    file = File.OpenRead(@"~/uploads/Neurologia");
                    //Diretorio = Server.MapPath(@"~/uploads/Neurologia");
                    //Session.Add("Caminho", Diretorio);
                }
                else if (Ortopedia.Checked == true)
                {
                    file = File.OpenRead(@"~/uploads/Ortopedia");
                    //Diretorio = Server.MapPath(@"~/uploads/Ortopedia");
                    //Session.Add("Caminho", Diretorio);
                }
                else if (Pediatria.Checked == true)
                {
                    file = File.OpenRead(@"~/uploads/Pediatria");
                    //Diretorio = Server.MapPath(@"~/uploads/Pediatria");
                    //Session.Add("Caminho", Diretorio);
                }
                else if (Outros.Checked == true)
                {
                    file = File.OpenRead(@"~/uploads/Outros");
                    //Diretorio = Server.MapPath(@"~/uploads/Outros");
                    //Session.Add("Caminho", Diretorio);
                }



                while ((count = file.Read(mybuff, 0, mybuff.Length)) > 0)
{
if (Context.Response.IsClientConnected)
{
    Context.Response.OutputStream.Write(mybuff, 0, mybuff.Length);
    Context.Response.Flush();

}
}

                //if (Session["Arquivo"] != null && Session["Caminho"] != null)
                //{
                //    string FilePath = Server.MapPath(Diretorio + Session["Arquivo"]);
                //    WebClient User = new WebClient();
                //    Byte[] FileBuffer = User.DownloadData(FilePath);
                //    if (FileBuffer != null)
                //    {
                //        Response.ContentType = "application/pdf";
                //        Response.AddHeader("content-length", FileBuffer.Length.ToString());
                //        Response.BinaryWrite(FileBuffer);
                //    }
                    
                    
                    //Response.Write(string.Format("<script>window.open('{0}','_blank');</script>", "OpenPDF.aspx"));

                    
                    //Response.ContentType = "application/pdf";
                    //Response.AddHeader("Content-Disposition", "attachment; filename=" + Session["Arquivo"]);
                    //Response.WriteFile(Session["Caminho"] + "\\" + Session["Arquivo"]);
                    //Response.Flush();
                    Session.Remove("Arquivo");
                    Session.Remove("Caminho");
                }
                else
                {
                    Response.Redirect("OpenPDF.aspx");
                }
            }
        }
    }
